from builtins import print as _print
from sys import _getframe


# 自定义print函数 方便输出时候带上行号
def print(*arg, **kw):
	s = f'第{_getframe(1).f_lineno}行：'  # 注此处需加参数 1。
	return _print(s, *arg, **kw)


# ### 在同一文件中,变量的缓存机制
# 1.对于整型而言，值相同情况下地址都一样
var1 = 5
var2 = 5
var1 = -100
var2 = -100
print(id(var1), id(var2))

# 2.对于浮点数而言，值相同情况下地址都一样
var1 = 4.67
var2 = 4.67
var1 = -4.67
var2 = -4.67
print(id(var1), id(var2))

# 3.布尔值而言,值相同情况下，id一致
var1 = True
var2 = True
print(id(var1), id(var2))

# 4.复数，值相同情况下地址都一样
var1 = 4 + 5j
var2 = 4 + 5j
# var1 = 5j
# var2 = 5j
# var1 = -5j
# var2 = -5j
print(id(var1), id(var2))

# -->容器类型部分
# 5.字符串相同 和 空元组 的情况下，地址相同
var1 = "你"
var2 = "你是"
var1 = ()
var2 = ()
print(id(var1), id(var2))
# 6.列表，元组，字典，集合无论什么情况 id标识都不同 [空元组例外]
var1 = (1, 2)
var2 = (1, 2)
var1 = [1, 2, 3]
var2 = [1, 2, 3]
print(id(var1), id(var2))
